import { Plugin } from "../../core";
import { ReactElement } from "react";

export enum ScrollMode {
  Horizontal = "Horizontal",
  Vertical = "Vertical",
  Wrapped = "Wrapped",
}

export interface RenderSwitchScrollModeProps {
  isSelected: boolean;
  mode: ScrollMode;
  onClick(): void;
}

export interface SwitchScrollModeProps {
  children?: (props: RenderSwitchScrollModeProps) => ReactElement;
  mode: ScrollMode;
}

export interface SwitchScrollModeButtonProps {
  mode: ScrollMode;
}

export interface SwitchScrollModeMenuItemProps {
  mode: ScrollMode;
  onClick(): void;
}

export interface ScrollModePlugin extends Plugin {
  SwitchScrollMode(props: SwitchScrollModeProps): ReactElement;
  SwitchScrollModeButton(props: SwitchScrollModeButtonProps): ReactElement;
  SwitchScrollModeMenuItem(props: SwitchScrollModeMenuItemProps): ReactElement;
}

export interface ScrollModePluginProps {
  scrollMode?: ScrollMode;
}
